home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 July: Mac OS SDK / Dev.CD Jul 99 SDK1.toast / Development Kits / Mac OS / Interfaces&Libraries / Universal / Interfaces / RIncludes / Gestalt.r < prev    next >
Encoding:
Text File  |  1998-08-17  |  47.6 KB  |  828 lines  |  [TEXT/MPS ]

  1. /*
  2.      File:        Gestalt.r
  3.  
  4.      Contains:    Gestalt Interfaces.
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Release:    Universal Interfaces 3.2
  8.  
  9.      Copyright:    © 1988-1998 by Apple Computer, Inc.  All rights reserved
  10.  
  11.      Bugs?:        For bug reports, consult the following page on
  12.                  the World Wide Web:
  13.  
  14.                      http://developer.apple.com/bugreporter/
  15.  
  16. */
  17.  
  18. #ifndef __GESTALT_R__
  19. #define __GESTALT_R__
  20.  
  21. #ifndef __CONDITIONALMACROS_R__
  22. #include "ConditionalMacros.r"
  23. #endif
  24.  
  25. #define gestaltAddressingModeAttr         'addr'                /*  addressing mode attributes  */
  26. #define gestalt32BitAddressing             0                    /*  using 32-bit addressing mode  */
  27. #define gestalt32BitSysZone             1                    /*  32-bit compatible system zone  */
  28. #define gestalt32BitCapable             2                    /*  Machine is 32-bit capable  */
  29.  
  30. #define gestaltAFPClient                 'afps'
  31. #define gestaltAFPClientVersionMask     0x0000FFFF            /*  low word of long is the  */
  32.                                                             /*  client version 0x0001 -> 0x0007 */
  33. #define gestaltAFPClient3_5             0x0001
  34. #define gestaltAFPClient3_6             0x0002
  35. #define gestaltAFPClient3_6_1             0x0003
  36. #define gestaltAFPClient3_6_2             0x0004
  37. #define gestaltAFPClient3_6_3             0x0005                /*  including 3.6.4, 3.6.5 */
  38. #define gestaltAFPClient3_7             0x0006                /*  including 3.7.1 */
  39. #define gestaltAFPClient3_7_2             0x0007                /*  including 3.7.3 */
  40. #define gestaltAFPClientAttributeMask     0xFFFF0000            /*  high word of long is a  */
  41.                                                             /*  set of attribute bits */
  42. #define gestaltAFPClientCfgRsrc         16                    /*  Client uses config resources */
  43. #define gestaltAFPClientSupportsIP         29                    /*  Client supports AFP over TCP/IP */
  44. #define gestaltAFPClientVMUI             30                    /*  Client can put up UI from the PBVolMount trap */
  45. #define gestaltAFPClientMultiReq         31                    /*  Client supports multiple outstanding requests */
  46.  
  47. #define gestaltAliasMgrAttr             'alis'                /*  Alias Mgr Attributes  */
  48. #define gestaltAliasMgrPresent             0                    /*  True if the Alias Mgr is present  */
  49. #define gestaltAliasMgrSupportsRemoteAppletalk  1            /*  True if the Alias Mgr knows about Remote Appletalk  */
  50. #define gestaltAliasMgrSupportsAOCEKeychain  2                /*  True if the Alias Mgr knows about the AOCE Keychain  */
  51. #define gestaltAliasMgrResolveAliasFileWithMountOptions  3    /*  True if the Alias Mgr implements gestaltAliasMgrResolveAliasFileWithMountOptions() and IsAliasFile()  */
  52.  
  53. #define gestaltArbitorAttr                 'arb '
  54. #define gestaltSerialArbitrationExists     0                    /*  this bit if the serial port arbitrator exists */
  55.  
  56. #define gestaltAppleScriptVersion         'ascv'                /*  AppleScript version */
  57. #define gestaltAppleScriptAttr             'ascr'                /*  AppleScript attributes */
  58. #define gestaltAppleScriptPresent         0
  59. #define gestaltAppleScriptPowerPCSupport  1
  60.  
  61. #define gestaltATAAttr                     'ata '                /*  ATA is the driver to support IDE hard disks  */
  62. #define gestaltATAPresent                 0                    /*  if set, ATA Manager is present  */
  63.  
  64. #define gestaltATalkVersion             'atkv'                /*  Detailed AppleTalk version; see comment above for format  */
  65. #define gestaltAppleTalkVersion         'atlk'                /*  appletalk version  */
  66. #define gestaltAUXVersion                 'a/ux'                /*  a/ux version, if present  */
  67. #define gestaltBusClkSpeed                 'bclk'                /*  main I/O bus clock speed in hertz  */
  68. #define gestaltCloseViewAttr             'BSDa'                /*  CloseView attributes  */
  69. #define gestaltCloseViewEnabled         0                    /*  Closeview enabled (dynamic bit - returns current state)  */
  70. #define gestaltCloseViewDisplayMgrFriendly  1                /*  Closeview compatible with Display Manager (FUTURE)  */
  71.  
  72. #define gestaltCFMAttr                     'cfrg'                /*  returns information about the Code Fragment Manager  */
  73. #define gestaltCFMPresent                 0                    /*  true if the Code Fragment Manager is present  */
  74.  
  75. #define gestaltCollectionMgrVersion     'cltn'                /*  Collection Manager version  */
  76. #define gestaltColorMatchingAttr         'cmta'                /*  ColorSync attributes  */
  77. #define gestaltHighLevelMatching         0
  78. #define gestaltColorMatchingLibLoaded     1
  79.  
  80. #define gestaltColorMatchingVersion     'cmtc'
  81. #define gestaltColorSync10                 0x0100                /*  0x0100 & 0x0110 _Gestalt versions for 1.0-1.0.3 product  */
  82. #define gestaltColorSync11                 0x0110                /*    0x0100 == low-level matching only  */
  83. #define gestaltColorSync104             0x0104                /*  Real version, by popular demand  */
  84. #define gestaltColorSync105             0x0105
  85. #define gestaltColorSync20                 0x0200                /*  ColorSync 2.0  */
  86. #define gestaltColorSync21                 0x0210
  87. #define gestaltColorSync211             0x0211
  88. #define gestaltColorSync212             0x0212
  89. #define gestaltColorSync213             0x0213
  90. #define gestaltColorSync25                 0x0250
  91.  
  92. #define gestaltConnMgrAttr                 'conn'                /*  connection mgr attributes     */
  93. #define gestaltConnMgrPresent             0
  94. #define gestaltConnMgrCMSearchFix         1                    /*  Fix to CMAddSearch?      */
  95. #define gestaltConnMgrErrorString         2                    /*  has CMGetErrorString()  */
  96. #define gestaltConnMgrMultiAsyncIO         3                    /*  CMNewIOPB, CMDisposeIOPB, CMPBRead, CMPBWrite, CMPBIOKill  */
  97.  
  98. #define gestaltColorPickerVersion         'cpkr'                /*  returns version of ColorPicker  */
  99. #define gestaltColorPicker                 'cpkr'                /*  gestaltColorPicker is old name for gestaltColorPickerVersion  */
  100.  
  101. #define gestaltComponentMgr             'cpnt'                /*  Component Mgr version  */
  102. #define gestaltNativeCPUtype             'cput'                /*  Native CPU type                                        */
  103. #define gestaltNativeCPUfamily             'cpuf'                /*  Native CPU family                                   */
  104. #define gestaltCPU68000                 0                    /*  Various 68k CPUs...      */
  105. #define gestaltCPU68010                 1
  106. #define gestaltCPU68020                 2
  107. #define gestaltCPU68030                 3
  108. #define gestaltCPU68040                 4
  109. #define gestaltCPU601                     0x0101                /*  IBM 601                                                  */
  110. #define gestaltCPU603                     0x0103
  111. #define gestaltCPU604                     0x0104
  112. #define gestaltCPU603e                     0x0106
  113. #define gestaltCPU603ev                 0x0107
  114. #define gestaltCPU750                     0x0108                /*  Also 740 - "G3"  */
  115. #define gestaltCPU604e                     0x0109
  116. #define gestaltCPU604ev                 0x010A                /*  Mach 5, 250Mhz and up  */
  117.  
  118. #define gestaltCRMAttr                     'crm '                /*  comm resource mgr attributes  */
  119. #define gestaltCRMPresent                 0
  120. #define gestaltCRMPersistentFix         1                    /*  fix for persistent tools  */
  121. #define gestaltCRMToolRsrcCalls         2                    /*  has CRMGetToolResource/ReleaseToolResource  */
  122.  
  123. #define gestaltControlStripVersion         'csvr'                /*  Control Strip version (was 'sdvr')  */
  124. #define gestaltCTBVersion                 'ctbv'                /*  CommToolbox version  */
  125. #define gestaltDBAccessMgrAttr             'dbac'                /*  Database Access Mgr attributes  */
  126. #define gestaltDBAccessMgrPresent         0                    /*  True if Database Access Mgr present  */
  127.  
  128. #define gestaltSDPFindVersion             'dfnd'                /*  OCE Standard Directory Panel */
  129. #define gestaltDictionaryMgrAttr         'dict'                /*  Dictionary Manager attributes  */
  130. #define gestaltDictionaryMgrPresent     0                    /*  Dictionary Manager attributes  */
  131.  
  132. #define gestaltDITLExtAttr                 'ditl'                /*  AppenDITL, etc. calls from CTB  */
  133. #define gestaltDITLExtPresent             0                    /*  True if calls are present  */
  134. #define gestaltDITLExtSupportsIctb         1                    /*  True if AppendDITL, ShortenDITL support 'ictb's  */
  135.  
  136. #define gestaltDesktopPicturesAttr         'dkpx'                /*  Desktop Pictures attributes  */
  137. #define gestaltDesktopPicturesInstalled  0                    /*  True if control panel is installed  */
  138. #define gestaltDesktopPicturesDisplayed  1                    /*  True if a picture is currently displayed  */
  139.  
  140. #define gestaltDisplayMgrVers             'dplv'                /*  Display Manager version  */
  141. #define gestaltDisplayMgrAttr             'dply'                /*  Display Manager attributes  */
  142. #define gestaltDisplayMgrPresent         0                    /*  True if Display Mgr is present  */
  143. #define gestaltDisplayMgrCanSwitchMirrored  2                /*  True if Display Mgr can switch modes on mirrored displays  */
  144. #define gestaltDisplayMgrSetDepthNotifies  3                /*  True SetDepth generates displays mgr notification  */
  145. #define gestaltDisplayMgrCanConfirm     4                    /*  True Display Manager supports DMConfirmConfiguration  */
  146. #define gestaltDisplayMgrColorSyncAware  5                    /*  True if Display Manager supports profiles for displays  */
  147.  
  148. #define gestaltDragMgrAttr                 'drag'                /*  Drag Manager attributes  */
  149. #define gestaltDragMgrPresent             0                    /*  Drag Manager is present  */
  150. #define gestaltDragMgrFloatingWind         1                    /*  Drag Manager supports floating windows  */
  151. #define gestaltPPCDragLibPresent         2                    /*  Drag Manager PPC DragLib is present  */
  152. #define gestaltDragMgrHasImageSupport     3                    /*  Drag Manager allows SetDragImage call  */
  153. #define gestaltCanStartDragInFloatWindow  4                    /*  Drag Manager supports starting a drag in a floating window  */
  154.  
  155. #define gestaltDigitalSignatureVersion     'dsig'                /*  returns Digital Signature Toolbox version in low-order word */
  156. #define gestaltEasyAccessAttr             'easy'                /*  Easy Access attributes  */
  157. #define gestaltEasyAccessOff             0                    /*  if Easy Access present, but off (no icon)  */
  158. #define gestaltEasyAccessOn             1                    /*  if Easy Access "On"  */
  159. #define gestaltEasyAccessSticky         2                    /*  if Easy Access "Sticky"  */
  160. #define gestaltEasyAccessLocked         3                    /*  if Easy Access "Locked"  */
  161.  
  162. #define gestaltEditionMgrAttr             'edtn'                /*  Edition Mgr attributes  */
  163. #define gestaltEditionMgrPresent         0                    /*  True if Edition Mgr present  */
  164. #define gestaltEditionMgrTranslationAware  1                /*  True if edition manager is translation manager aware  */
  165.  
  166. #define gestaltAppleEventsAttr             'evnt'                /*  Apple Events attributes  */
  167. #define gestaltAppleEventsPresent         0                    /*  True if Apple Events present  */
  168. #define gestaltScriptingSupport         1
  169. #define gestaltOSLInSystem                 2                    /*  OSL is in system so don’t use the one linked in to app  */
  170.  
  171. #define gestaltExtensionTableVersion     'etbl'                /*  ExtensionTable version  */
  172. #define gestaltFloppyAttr                 'flpy'                /*  Floppy disk drive/driver attributes  */
  173. #define gestaltFloppyIsMFMOnly             0                    /*  Floppy driver only supports MFM disk formats  */
  174. #define gestaltFloppyIsManualEject         1                    /*  Floppy drive, driver, and file system are in manual-eject mode  */
  175. #define gestaltFloppyUsesDiskInPlace     2                    /*  Floppy drive must have special DISK-IN-PLACE output; standard DISK-CHANGED not used  */
  176.  
  177. #define gestaltFinderAttr                 'fndr'                /*  Finder attributes  */
  178. #define gestaltFinderDropEvent             0                    /*  Finder recognizes drop event  */
  179. #define gestaltFinderMagicPlacement     1                    /*  Finder supports magic icon placement  */
  180. #define gestaltFinderCallsAEProcess     2                    /*  Finder calls AEProcessAppleEvent  */
  181. #define gestaltOSLCompliantFinder         3                    /*  Finder is scriptable and recordable  */
  182. #define gestaltFinderSupports4GBVolumes  4                    /*  Finder correctly handles 4GB volumes  */
  183. #define gestaltFinderHasClippings         6                    /*  Finder supports Drag Manager clipping files  */
  184. #define gestaltFinderFullDragManagerSupport  7                /*  Finder accepts 'hfs ' flavors properly  */
  185. #define gestaltFinderFloppyRootComments  8                    /*  in MacOS 8 and later, will be set if Finder ever supports comments on Floppy icons  */
  186. #define gestaltFinderLargeAndNotSavedFlavorsOK  9            /*  in MacOS 8 and later, this bit is set if drags with >1024-byte flavors and flavorNotSaved flavors work reliably  */
  187. #define gestaltFinderUsesExtensibleFolderManager  10        /*  Finder uses Extensible Folder Manager (for example, for Magic Routing)  */
  188.  
  189. #define gestaltFindFolderAttr             'fold'                /*  Folder Mgr attributes  */
  190. #define gestaltFindFolderPresent         0                    /*  True if Folder Mgr present  */
  191. #define gestaltFolderDescSupport         1                    /*  Tru if Folder Mgr has FolderDesc calls  */
  192.  
  193. #define gestaltFontMgrAttr                 'font'                /*  Font Mgr attributes  */
  194. #define gestaltOutlineFonts             0                    /*  True if Outline Fonts supported  */
  195.  
  196. #define gestaltFPUType                     'fpu '                /*  fpu type  */
  197. #define gestaltNoFPU                     0                    /*  no FPU  */
  198. #define gestalt68881                     1                    /*  68881 FPU  */
  199. #define gestalt68882                     2                    /*  68882 FPU  */
  200. #define gestalt68040FPU                 3                    /*  68040 built-in FPU  */
  201.  
  202. #define gestaltFSAttr                     'fs  '                /*  file system attributes  */
  203. #define gestaltFullExtFSDispatching     0                    /*  has really cool new HFSDispatch dispatcher  */
  204. #define gestaltHasFSSpecCalls             1                    /*  has FSSpec calls  */
  205. #define gestaltHasFileSystemManager     2                    /*  has a file system manager  */
  206. #define gestaltFSMDoesDynamicLoad         3                    /*  file system manager supports dynamic loading  */
  207. #define gestaltFSSupports4GBVols         4                    /*  file system supports 4 gigabyte volumes  */
  208. #define gestaltFSSupports2TBVols         5                    /*  file system supports 2 terabyte volumes  */
  209. #define gestaltHasExtendedDiskInit         6                    /*  has extended Disk Initialization calls  */
  210. #define gestaltDTMgrSupportsFSM         7                    /*  Desktop Manager support FSM-based foreign file systems  */
  211. #define gestaltFSNoMFSVols                 8                    /*  file system doesn't supports MFS volumes  */
  212. #define gestaltFSSupportsHFSPlusVols     9                    /*  file system supports HFS Plus volumes  */
  213. #define gestaltFSIncompatibleDFA82         10                    /*  VCB and FCB structures changed; DFA 8.2 is incompatible  */
  214.  
  215. #define gestaltAdminFeaturesFlagsAttr     'fred'                /*  a set of admin flags, mostly useful internally.  */
  216. #define gestaltFinderUsesSpecialOpenFoldersFile  0            /*  the Finder uses a special file to store the list of open folders  */
  217.  
  218. #define gestaltFSMVersion                 'fsm '                /*  returns version of HFS External File Systems Manager (FSM)  */
  219. #define gestaltFXfrMgrAttr                 'fxfr'                /*  file transfer manager attributes  */
  220. #define gestaltFXfrMgrPresent             0
  221. #define gestaltFXfrMgrMultiFile         1                    /*  supports FTSend and FTReceive  */
  222. #define gestaltFXfrMgrErrorString         2                    /*  supports FTGetErrorString  */
  223. #define gestaltFXfrMgrAsync             3                    /* supports FTSendAsync, FTReceiveAsync, FTCompletionAsync */
  224.  
  225. #define gestaltGraphicsAttr             'gfxa'                /*  Quickdraw GX attributes selector  */
  226. #define gestaltGraphicsIsDebugging         0x00000001
  227. #define gestaltGraphicsIsLoaded         0x00000002
  228. #define gestaltGraphicsIsPowerPC         0x00000004
  229.  
  230. #define gestaltGraphicsVersion             'grfx'                /*  Quickdraw GX version selector  */
  231. #define gestaltCurrentGraphicsVersion     0x00010200            /*  the version described in this set of headers  */
  232.  
  233. #define gestaltHardwareAttr             'hdwr'                /*  hardware attributes  */
  234. #define gestaltHasVIA1                     0                    /*  VIA1 exists  */
  235. #define gestaltHasVIA2                     1                    /*  VIA2 exists  */
  236. #define gestaltHasASC                     3                    /*  Apple Sound Chip exists  */
  237. #define gestaltHasSCC                     4                    /*  SCC exists  */
  238. #define gestaltHasSCSI                     7                    /*  SCSI exists  */
  239. #define gestaltHasSoftPowerOff             19                    /*  Capable of software power off  */
  240. #define gestaltHasSCSI961                 21                    /*  53C96 SCSI controller on internal bus  */
  241. #define gestaltHasSCSI962                 22                    /*  53C96 SCSI controller on external bus  */
  242. #define gestaltHasUniversalROM             24                    /*  Do we have a Universal ROM?  */
  243. #define gestaltHasEnhancedLtalk         30                    /*  Do we have Enhanced LocalTalk?  */
  244.  
  245. #define gestaltHelpMgrAttr                 'help'                /*  Help Mgr Attributes  */
  246. #define gestaltHelpMgrPresent             0                    /*  true if help mgr is present  */
  247. #define gestaltHelpMgrExtensions         1                    /*  true if help mgr extensions are installed  */
  248. #define gestaltAppleGuideIsDebug         30
  249. #define gestaltAppleGuidePresent         31                    /*  true if AppleGuide is installed  */
  250.  
  251. #define gestaltHardwareVendorCode         'hrad'                /*  Returns hardware vendor information  */
  252. #define gestaltHardwareVendorApple         'Appl'                /*  Hardware built by Apple  */
  253.  
  254. #define gestaltCompressionMgr             'icmp'                /*  returns version of the Image Compression Manager  */
  255. #define gestaltIconUtilitiesAttr         'icon'                /*  Icon Utilities attributes  (Note: available in System 7.0, despite gestalt)  */
  256. #define gestaltIconUtilitiesPresent     0                    /*  true if icon utilities are present  */
  257. #define gestaltIconUtilitiesHas48PixelIcons  1                /*  true if 48x48 icons are supported by IconUtilities  */
  258. #define gestaltIconUtilitiesHas32BitIcons  2                /*  true if 32-bit deep icons are supported  */
  259. #define gestaltIconUtilitiesHas8BitDeepMasks  3                /*  true if 8-bit deep masks are supported  */
  260. #define gestaltIconUtilitiesHasIconServices  4                /*  true if IconServices is present  */
  261.  
  262. #define gestaltInternalDisplay             'idsp'                /*  slot number of internal display location  */
  263. #define gestaltKeyboardType             'kbd '                /*  keyboard type  */
  264. #define gestaltMacKbd                     1
  265. #define gestaltMacAndPad                 2
  266. #define gestaltMacPlusKbd                 3
  267. #define gestaltExtADBKbd                 4
  268. #define gestaltStdADBKbd                 5
  269. #define gestaltPrtblADBKbd                 6
  270. #define gestaltPrtblISOKbd                 7
  271. #define gestaltStdISOADBKbd             8
  272. #define gestaltExtISOADBKbd             9
  273. #define gestaltADBKbdII                 10
  274. #define gestaltADBISOKbdII                 11
  275. #define gestaltPwrBookADBKbd             12
  276. #define gestaltPwrBookISOADBKbd         13
  277. #define gestaltAppleAdjustKeypad         14
  278. #define gestaltAppleAdjustADBKbd         15
  279. #define gestaltAppleAdjustISOKbd         16
  280. #define gestaltJapanAdjustADBKbd         17                    /*  Japan Adjustable Keyboard  */
  281. #define gestaltPwrBkExtISOKbd             20                    /*  PowerBook Extended International Keyboard with function keys  */
  282. #define gestaltPwrBkExtJISKbd             21                    /*  PowerBook Extended Japanese Keyboard with function keys          */
  283. #define gestaltPwrBkExtADBKbd             24                    /*  PowerBook Extended Domestic Keyboard with function keys          */
  284. #define gestaltPS2Keyboard                 27                    /*  PS2 keyboard  */
  285. #define gestaltPwrBkSubDomKbd             28                    /*  PowerBook Subnote Domestic Keyboard with function keys w/  inverted T      */
  286. #define gestaltPwrBkSubISOKbd             29                    /*  PowerBook Subnote International Keyboard with function keys w/  inverted T      */
  287. #define gestaltPwrBkSubJISKbd             30                    /*  PowerBook Subnote Japanese Keyboard with function keys w/ inverted T          */
  288. #define gestaltPwrBkEKDomKbd             195                    /*  (0xC3) PowerBook Domestic Keyboard with Embedded Keypad, function keys & inverted T      */
  289. #define gestaltPwrBkEKISOKbd             196                    /*  (0xC4) PowerBook International Keyboard with Embedded Keypad, function keys & inverted T      */
  290. #define gestaltPwrBkEKJISKbd             197                    /*  (0xC5) PowerBook Japanese Keyboard with Embedded Keypad, function keys & inverted T          */
  291. #define gestaltUSBCosmoANSIKbd             198                    /*  (0xC6) Cosmo USB Domestic (ANSI) Keyboard  */
  292. #define gestaltUSBCosmoISOKbd             199                    /*  (0xC7) Cosmo USB International (ISO) Keyboard  */
  293. #define gestaltUSBCosmoJISKbd             200                    /*  (0xC8) Cosmo USB Japanese (JIS) Keyboard  */
  294.  
  295. #define gestaltLowMemorySize             'lmem'                /*  size of low memory area  */
  296. #define gestaltLogicalRAMSize             'lram'                /*  logical ram size  */
  297. #define gestaltMachineType                 'mach'                /*  machine type  */
  298. #define gestaltClassic                     1
  299. #define gestaltMacXL                     2
  300. #define gestaltMac512KE                 3
  301. #define gestaltMacPlus                     4
  302. #define gestaltMacSE                     5
  303. #define gestaltMacII                     6
  304. #define gestaltMacIIx                     7
  305. #define gestaltMacIIcx                     8
  306. #define gestaltMacSE030                 9
  307. #define gestaltPortable                 10
  308. #define gestaltMacIIci                     11
  309. #define gestaltPowerMac8100_120         12
  310. #define gestaltMacIIfx                     13
  311. #define gestaltMacClassic                 17
  312. #define gestaltMacIIsi                     18
  313. #define gestaltMacLC                     19
  314. #define gestaltMacQuadra900             20
  315. #define gestaltPowerBook170             21
  316. #define gestaltMacQuadra700             22
  317. #define gestaltClassicII                 23
  318. #define gestaltPowerBook100             24
  319. #define gestaltPowerBook140             25
  320. #define gestaltMacQuadra950             26
  321. #define gestaltMacLCIII                 27
  322. #define gestaltPerforma450                 27
  323. #define gestaltPowerBookDuo210             29
  324. #define gestaltMacCentris650             30
  325. #define gestaltPowerBookDuo230             32
  326. #define gestaltPowerBook180             33
  327. #define gestaltPowerBook160             34
  328. #define gestaltMacQuadra800             35
  329. #define gestaltMacQuadra650             36
  330. #define gestaltMacLCII                     37
  331. #define gestaltPowerBookDuo250             38
  332. #define gestaltAWS9150_80                 39
  333. #define gestaltPowerMac8100_110         40
  334. #define gestaltAWS8150_110                 40
  335. #define gestaltPowerMac5200             41
  336. #define gestaltPowerMac5260             41
  337. #define gestaltPerforma5300             41
  338. #define gestaltPowerMac6200             42
  339. #define gestaltPerforma6300             42
  340. #define gestaltMacIIvi                     44
  341. #define gestaltMacIIvm                     45
  342. #define gestaltPerforma600                 45
  343. #define gestaltPowerMac7100_80             47
  344. #define gestaltMacIIvx                     48
  345. #define gestaltMacColorClassic             49
  346. #define gestaltPerforma250                 49
  347. #define gestaltPowerBook165c             50
  348. #define gestaltMacCentris610             52
  349. #define gestaltMacQuadra610             53
  350. #define gestaltPowerBook145             54
  351. #define gestaltPowerMac8100_100         55
  352. #define gestaltMacLC520                 56
  353. #define gestaltAWS9150_120                 57
  354. #define gestaltPowerMac6400             58
  355. #define gestaltPerforma6400             58
  356. #define gestaltPerforma6360             58
  357. #define gestaltMacCentris660AV             60
  358. #define gestaltMacQuadra660AV             60
  359. #define gestaltPerforma46x                 62
  360. #define gestaltPowerMac8100_80             65
  361. #define gestaltAWS8150_80                 65
  362. #define gestaltPowerMac9500             67
  363. #define gestaltPowerMac9600             67
  364. #define gestaltPowerMac7500             68
  365. #define gestaltPowerMac7600             68
  366. #define gestaltPowerMac8500             69
  367. #define gestaltPowerMac8600             69
  368. #define gestaltAWS8550                     68
  369. #define gestaltPowerBook180c             71
  370. #define gestaltPowerBook520             72
  371. #define gestaltPowerBook520c             72
  372. #define gestaltPowerBook540             72
  373. #define gestaltPowerBook540c             72
  374. #define gestaltPowerMac5400             74
  375. #define gestaltPowerMac6100_60             75
  376. #define gestaltAWS6150_60                 75
  377. #define gestaltPowerBookDuo270c         77
  378. #define gestaltMacQuadra840AV             78
  379. #define gestaltPerforma550                 80
  380. #define gestaltPowerBook165             84
  381. #define gestaltPowerBook190             85
  382. #define gestaltMacTV                     88
  383. #define gestaltMacLC475                 89
  384. #define gestaltPerforma47x                 89
  385. #define gestaltMacLC575                 92
  386. #define gestaltMacQuadra605             94
  387. #define gestaltMacQuadra630             98
  388. #define gestaltMacLC580                 99
  389. #define gestaltPerforma580                 99
  390. #define gestaltPowerMac6100_66             100
  391. #define gestaltAWS6150_66                 100
  392. #define gestaltPowerBookDuo280             102
  393. #define gestaltPowerBookDuo280c         103
  394. #define gestaltPowerMacLC475             104                    /*  Mac LC 475 & PPC Processor Upgrade Card */
  395. #define gestaltPowerMacPerforma47x         104
  396. #define gestaltPowerMacLC575             105                    /*  Mac LC 575 & PPC Processor Upgrade Card  */
  397. #define gestaltPowerMacPerforma57x         105
  398. #define gestaltPowerMacQuadra630         106                    /*  Quadra 630 & PPC Processor Upgrade Card */
  399. #define gestaltPowerMacLC630             106                    /*  Mac LC 630 & PPC Processor Upgrade Card */
  400. #define gestaltPowerMacPerforma63x         106                    /*  Performa 63x & PPC Processor Upgrade Card */
  401. #define gestaltPowerMac7200             108
  402. #define gestaltPowerMac7300             109
  403. #define gestaltPowerMac7100_66             112
  404. #define gestaltPowerBook150             115
  405. #define gestaltPowerMacQuadra700         116                    /*  Quadra 700 & Power PC Upgrade Card */
  406. #define gestaltPowerMacQuadra900         117                    /*  Quadra 900 & Power PC Upgrade Card  */
  407. #define gestaltPowerMacQuadra950         118                    /*  Quadra 950 & Power PC Upgrade Card  */
  408. #define gestaltPowerMacCentris610         119                    /*  Centris 610 & Power PC Upgrade Card  */
  409. #define gestaltPowerMacCentris650         120                    /*  Centris 650 & Power PC Upgrade Card  */
  410. #define gestaltPowerMacQuadra610         121                    /*  Quadra 610 & Power PC Upgrade Card  */
  411. #define gestaltPowerMacQuadra650         122                    /*  Quadra 650 & Power PC Upgrade Card  */
  412. #define gestaltPowerMacQuadra800         123                    /*  Quadra 800 & Power PC Upgrade Card  */
  413. #define gestaltPowerBookDuo2300         124
  414. #define gestaltPowerBook500PPCUpgrade     126
  415. #define gestaltPowerBook5300             128
  416. #define gestaltPowerBook1400             310
  417. #define gestaltPowerBook3400             306
  418. #define gestaltPowerBook2400             307
  419. #define gestaltPowerBookG3Series         312
  420. #define gestaltPowerBookG3                 313
  421. #define gestaltPowerBookG3Series2         314
  422. #define gestaltPowerMacG3                 510
  423. #define gestaltPowerMac5500             512
  424. #define gestalt20thAnniversary             512
  425. #define gestaltPowerMac6500             513
  426. #define gestaltPowerMac4400_160         514                    /*  slower machine has different machine ID */
  427. #define gestaltPowerMac4400             515
  428.  
  429. #define gestaltQuadra605                 94
  430. #define gestaltQuadra610                 53
  431. #define gestaltQuadra630                 98
  432. #define gestaltQuadra650                 36
  433. #define gestaltQuadra660AV                 60
  434. #define gestaltQuadra700                 22
  435. #define gestaltQuadra800                 35
  436. #define gestaltQuadra840AV                 78
  437. #define gestaltQuadra900                 20
  438. #define gestaltQuadra950                 26
  439.  
  440. #define kMachineNameStrID                 (-16395)
  441. #define gestaltSMPMailerVersion         'malr'                /*  OCE StandardMail */
  442. #define gestaltMediaBay                 'mbeh'                /*  media bay driver type  */
  443. #define gestaltMBLegacy                 0                    /*  media bay support in PCCard 2.0  */
  444. #define gestaltMBSingleBay                 1                    /*  single bay media bay driver  */
  445. #define gestaltMBMultipleBays             2                    /*  multi-bay media bay driver  */
  446.  
  447. #define gestaltMessageMgrVersion         'mess'                /*  GX Printing Message Manager Gestalt Selector  */
  448. #define gestaltMachineIcon                 'micn'                /*  machine icon  */
  449. #define gestaltMiscAttr                 'misc'                /*  miscellaneous attributes  */
  450. #define gestaltScrollingThrottle         0                    /*  true if scrolling throttle on  */
  451. #define gestaltSquareMenuBar             2                    /*  true if menu bar is square  */
  452.  
  453. #define gestaltMixedModeVersion         'mixd'                /*  returns version of Mixed Mode  */
  454. #define gestaltMixedModeAttr             'mixd'                /*  returns Mixed Mode attributes  */
  455. #define gestaltMixedModePowerPC         0                    /*  true if Mixed Mode supports PowerPC ABI calling conventions  */
  456. #define gestaltPowerPCAware             0                    /*  old name for gestaltMixedModePowerPC  */
  457. #define gestaltMixedModeCFM68K             1                    /*  true if Mixed Mode supports CFM-68K calling conventions  */
  458. #define gestaltMixedModeCFM68KHasTrap     2                    /*  true if CFM-68K Mixed Mode implements _MixedModeDispatch (versions 1.0.1 and prior did not)  */
  459. #define gestaltMixedModeCFM68KHasState     3                    /*  true if CFM-68K Mixed Mode exports Save/RestoreMixedModeState  */
  460.  
  461. #define gestaltQuickTimeConferencing     'mtlk'                /*  returns QuickTime Conferencing version  */
  462. #define gestaltMemoryMapAttr             'mmap'                /*  Memory map type  */
  463. #define gestaltMemoryMapSparse             0                    /*  Sparse memory is on  */
  464.  
  465. #define gestaltMMUType                     'mmu '                /*  mmu type  */
  466. #define gestaltNoMMU                     0                    /*  no MMU  */
  467. #define gestaltAMU                         1                    /*  address management unit  */
  468. #define gestalt68851                     2                    /*  68851 PMMU  */
  469. #define gestalt68030MMU                 3                    /*  68030 built-in MMU  */
  470. #define gestalt68040MMU                 4                    /*  68040 built-in MMU  */
  471. #define gestaltEMMU1                     5                    /*  Emulated MMU type 1   */
  472.  
  473. #define gestaltStdNBPAttr                 'nlup'                /*  standard nbp attributes  */
  474. #define gestaltStdNBPPresent             0
  475. #define gestaltStdNBPSupportsAutoPosition  1                /*  StandardNBP takes (-1,-1) to mean alert position main screen  */
  476.  
  477. #define gestaltNotificationMgrAttr         'nmgr'                /*  notification manager attributes  */
  478. #define gestaltNotificationPresent         0                    /*  notification manager exists  */
  479.  
  480. #define gestaltNameRegistryVersion         'nreg'                /*  NameRegistryLib version number, for System 7.5.2+ usage  */
  481. #define gestaltNuBusSlotCount             'nubs'                /*  count of logical NuBus slots present  */
  482. #define gestaltOCEToolboxVersion         'ocet'                /*  OCE Toolbox version  */
  483. #define gestaltOCETB                     0x0102                /*  OCE Toolbox version 1.02  */
  484. #define gestaltSFServer                 0x0100                /*  S&F Server version 1.0  */
  485.  
  486. #define gestaltOCEToolboxAttr             'oceu'                /*  OCE Toolbox attributes  */
  487. #define gestaltOCETBPresent             0x01                /*  OCE toolbox is present, not running  */
  488. #define gestaltOCETBAvailable             0x02                /*  OCE toolbox is running and available  */
  489. #define gestaltOCESFServerAvailable     0x04                /*  S&F Server is running and available  */
  490. #define gestaltOCETBNativeGlueAvailable  0x10                /*  Native PowerPC Glue routines are availible  */
  491.  
  492. #define gestaltOpenFirmwareInfo         'opfw'                /*  Open Firmware info  */
  493. #define gestaltOSAttr                     'os  '                /*  o/s attributes  */
  494. #define gestaltSysZoneGrowable             0                    /*  system heap is growable  */
  495. #define gestaltLaunchCanReturn             1                    /*  can return from launch  */
  496. #define gestaltLaunchFullFileSpec         2                    /*  can launch from full file spec  */
  497. #define gestaltLaunchControl             3                    /*  launch control support available  */
  498. #define gestaltTempMemSupport             4                    /*  temp memory support  */
  499. #define gestaltRealTempMemory             5                    /*  temp memory handles are real  */
  500. #define gestaltTempMemTracked             6                    /*  temporary memory handles are tracked  */
  501. #define gestaltIPCSupport                 7                    /*  IPC support is present  */
  502. #define gestaltSysDebuggerSupport         8                    /*  system debugger support is present  */
  503.  
  504. #define gestaltOSTable                     'ostt'                /*   OS trap table base   */
  505. #define gestaltPCCard                     'pccd'                /*     PC Card attributes */
  506. #define gestaltCardServicesPresent         0                    /*     PC Card 2.0 (68K) API is present */
  507. #define gestaltPCCardFamilyPresent         1                    /*     PC Card 3.x (PowerPC) API is present */
  508. #define gestaltPCCardHasPowerControl     2                    /*     PCCardSetPowerLevel is supported */
  509. #define gestaltPCCardSupportsCardBus     3                    /*     CardBus is supported */
  510.  
  511. #define gestaltProcClkSpeed             'pclk'                /*  processor clock speed in hertz  */
  512. #define gestaltPCXAttr                     'pcxg'                /*  PC Exchange attributes  */
  513. #define gestaltPCXHas8and16BitFAT         0                    /*  PC Exchange supports both 8 and 16 bit FATs  */
  514. #define gestaltPCXHasProDOS             1                    /*  PC Exchange supports ProDOS  */
  515.  
  516. #define gestaltLogicalPageSize             'pgsz'                /*  logical page size  */
  517. #define gestaltScreenCaptureMain         'pic1'                /*  Zero, or vRefNum of disk to hold picture  */
  518. #define gestaltScreenCaptureDir         'pic2'                /*  Directory ID of folder to hold picture  */
  519.  
  520. #define gestaltGXPrintingMgrVersion     'pmgr'                /*  QuickDraw GX Printing Manager Version */
  521. #define gestaltPopupAttr                 'pop!'                /*  popup cdef attributes  */
  522. #define gestaltPopupPresent             0
  523.  
  524. #define gestaltPowerMgrAttr             'powr'                /*  power manager attributes  */
  525. #define gestaltPMgrExists                 0
  526. #define gestaltPMgrCPUIdle                 1
  527. #define gestaltPMgrSCC                     2
  528. #define gestaltPMgrSound                 3
  529. #define gestaltPMgrDispatchExists         4
  530. #define gestaltPMgrSupportsAVPowerStateAtSleepWake  5
  531.  
  532. #define gestaltPPCToolboxAttr             'ppc '                /*  PPC toolbox attributes  */
  533. #define gestaltPPCToolboxPresent         0x0000                /*  PPC Toolbox is present  Requires PPCInit to be called  */
  534. #define gestaltPPCSupportsRealTime         0x1000                /*  PPC Supports real-time delivery  */
  535. #define gestaltPPCSupportsIncoming         0x0001                /*  PPC will deny incoming network requests  */
  536. #define gestaltPPCSupportsOutGoing         0x0002                /*  PPC will deny outgoing network requests  */
  537.  
  538. #define gestaltPowerPCProcessorFeatures  'ppcf'                /*  Optional PowerPC processor features  */
  539. #define gestaltPowerPCHasGraphicsInstructions  0            /*  has fres, frsqrte, and fsel instructions  */
  540. #define gestaltPowerPCHasSTFIWXInstruction  1                /*  has stfiwx instruction  */
  541. #define gestaltPowerPCHasSquareRootInstructions  2            /*  has fsqrt and fsqrts instructions  */
  542. #define gestaltPowerPCHasDCBAInstruction  3                    /*  has dcba instruction  */
  543. #define gestaltPowerPCHasVectorInstructions  4                /*  has vector instructions  */
  544. #define gestaltPowerPCHasDataStreams     5                    /*  has dst, dstt, dstst, dss, and dssall instructions  */
  545.  
  546. #define gestaltProcessorType             'proc'                /*  processor type  */
  547. #define gestalt68000                     1
  548. #define gestalt68010                     2
  549. #define gestalt68020                     3
  550. #define gestalt68030                     4
  551. #define gestalt68040                     5
  552.  
  553. #define gestaltSDPPromptVersion         'prpv'                /*  OCE Standard Directory Panel */
  554. #define gestaltParityAttr                 'prty'                /*  parity attributes  */
  555. #define gestaltHasParityCapability         0                    /*  has ability to check parity  */
  556. #define gestaltParityEnabled             1                    /*  parity checking enabled  */
  557.  
  558. #define gestaltQD3DVersion                 'q3v '                /*  Quickdraw 3D version in pack BCD */
  559. #define gestaltQD3DViewer                 'q3vc'                /*  Quickdraw 3D viewer attributes */
  560. #define gestaltQD3DViewerPresent         0                    /*  bit 0 set if QD3D Viewer is available */
  561.  
  562. #if OLDROUTINENAMES
  563. #define gestaltQD3DViewerNotPresent     0x00
  564. #define gestaltQD3DViewerAvailable         0x01
  565.  
  566. #endif
  567. #define gestaltQuickdrawVersion         'qd  '                /*  quickdraw version  */
  568. #define gestaltOriginalQD                 0x0000                /*  original 1-bit QD  */
  569. #define gestalt8BitQD                     0x0100                /*  8-bit color QD  */
  570. #define gestalt32BitQD                     0x0200                /*  32-bit color QD  */
  571. #define gestalt32BitQD11                 0x0201                /*  32-bit color QDv1.1  */
  572. #define gestalt32BitQD12                 0x0220                /*  32-bit color QDv1.2  */
  573. #define gestalt32BitQD13                 0x0230                /*  32-bit color QDv1.3  */
  574. #define gestaltAllegroQD                 0x0250                /*  Allegro QD OS 8.5  */
  575.  
  576. #define gestaltQD3D                     'qd3d'                /*  Quickdraw 3D attributes */
  577. #define gestaltQD3DPresent                 0                    /*  bit 0 set if QD3D available */
  578.  
  579. #if OLDROUTINENAMES
  580. #define gestaltQD3DNotPresent             0x00
  581. #define gestaltQD3DAvailable             0x01
  582.  
  583. #endif
  584. #define gestaltGXVersion                 'qdgx'                /*  Overall QuickDraw GX Version */
  585. #define gestaltQuickdrawFeatures         'qdrw'                /*  quickdraw features  */
  586. #define gestaltHasColor                 0                    /*  color quickdraw present  */
  587. #define gestaltHasDeepGWorlds             1                    /*  GWorlds can be deeper than 1-bit  */
  588. #define gestaltHasDirectPixMaps         2                    /*  PixMaps can be direct (16 or 32 bit)  */
  589. #define gestaltHasGrayishTextOr         3                    /*  supports text mode grayishTextOr  */
  590. #define gestaltSupportsMirroring         4                    /*  Supports video mirroring via the Display Manager.  */
  591. #define gestaltQDHasLongRowBytes         5                    /*  Long rowBytes supported in GWorlds  */
  592.  
  593. #define gestaltQDTextVersion             'qdtx'                /*  QuickdrawText version  */
  594. #define gestaltOriginalQDText             0x0000                /*  up to and including 8.1  */
  595. #define gestaltAllegroQDText             0x0100                /*  starting with 8.2 (?)  */
  596.  
  597. #define gestaltQDTextFeatures             'qdtf'                /*  QuickdrawText features  */
  598. #define gestaltWSIISupport                 0                    /*  bit 0: WSII support included  */
  599. #define gestaltSbitFontSupport             1                    /*  sbit-only fonts supported  */
  600. #define gestaltAntiAliasedTextAvailable  2                    /*  capable of antialiased text  */
  601. #define gestaltOFA2available             3                    /*  OFA2 available  */
  602. #define gestaltCreatesAliasFontRsrc     4                    /*  "real" datafork font support  */
  603. #define gestaltNativeType1FontSupport     5                    /*  we have scaler for Type1 fonts  */
  604.  
  605. #define gestaltQuickTimeConferencingInfo  'qtci'            /*  returns pointer to QuickTime Conferencing information  */
  606. #define gestaltQuickTimeVersion         'qtim'                /*  returns version of QuickTime  */
  607. #define gestaltQuickTime                 'qtim'                /*  gestaltQuickTime is old name for gestaltQuickTimeVersion  */
  608.  
  609. #define gestaltQuickTimeFeatures         'qtrs'
  610. #define gestaltPPCQuickTimeLibPresent     0                    /*  PowerPC QuickTime glue library is present  */
  611.  
  612. #define gestaltQTVRMgrAttr                 'qtvr'                /*  QuickTime VR attributes                                */
  613. #define gestaltQTVRMgrPresent             0                    /*  QTVR API is present                                    */
  614. #define gestaltQTVRObjMoviesPresent     1                    /*  QTVR runtime knows about object movies                 */
  615. #define gestaltQTVRCylinderPanosPresent  2                    /*  QTVR runtime knows about cylindrical panoramic movies  */
  616.  
  617. #define gestaltQTVRMgrVers                 'qtvv'                /*  QuickTime VR version                                   */
  618. #define gestaltPhysicalRAMSize             'ram '                /*  physical RAM size  */
  619. #define gestaltRBVAddr                     'rbv '                /*  RBV base address   */
  620. #define gestaltROMSize                     'rom '                /*  rom size  */
  621. #define gestaltROMVersion                 'romv'                /*  rom version  */
  622. #define gestaltResourceMgrAttr             'rsrc'                /*  Resource Mgr attributes  */
  623. #define gestaltPartialRsrcs             0                    /*  True if partial resources exist  */
  624.  
  625. #define gestaltRealtimeMgrAttr             'rtmr'                /*  Realtime manager attributes             */
  626. #define gestaltRealtimeMgrPresent         0                    /*  true if the Realtime manager is present      */
  627.  
  628. #define gestaltSCCReadAddr                 'sccr'                /*  scc read base address   */
  629. #define gestaltSCCWriteAddr             'sccw'                /*  scc read base address   */
  630. #define gestaltScrapMgrAttr             'scra'                /*  Scrap Manager attributes  */
  631. #define gestaltScrapMgrTranslationAware  0                    /*  True if scrap manager is translation aware  */
  632.  
  633. #define gestaltScriptMgrVersion         'scri'                /*  Script Manager version number      */
  634. #define gestaltScriptCount                 'scr#'                /*  number of active script systems    */
  635. #define gestaltSCSI                     'scsi'                /*  SCSI Manager attributes  */
  636. #define gestaltAsyncSCSI                 0                    /*  Supports Asynchronous SCSI  */
  637. #define gestaltAsyncSCSIINROM             1                    /*  Async scsi is in ROM (available for booting)  */
  638. #define gestaltSCSISlotBoot             2                    /*  ROM supports Slot-style PRAM for SCSI boots (PDM and later)  */
  639. #define gestaltSCSIPollSIH                 3                    /*  SCSI Manager will poll for interrupts if Secondary Interrupts are busy.  */
  640.  
  641. #define gestaltControlStripAttr         'sdev'                /*  Control Strip attributes  */
  642. #define gestaltControlStripExists         0                    /*  Control Strip is installed  */
  643. #define gestaltControlStripVersionFixed  1                    /*  Control Strip version Gestalt selector was fixed  */
  644. #define gestaltControlStripUserFont     2                    /*  supports user-selectable font/size  */
  645. #define gestaltControlStripUserHotKey     3                    /*  support user-selectable hot key to show/hide the window  */
  646.  
  647. #define gestaltSDPStandardDirectoryVersion  'sdvr'            /*  OCE Standard Directory Panel */
  648. #define gestaltSerialAttr                 'ser '                /*  Serial attributes  */
  649. #define gestaltHasGPIaToDCDa             0                    /*  GPIa connected to DCDa */
  650. #define gestaltHasGPIaToRTxCa             1                    /*  GPIa connected to RTxCa clock input */
  651. #define gestaltHasGPIbToDCDb             2                    /*  GPIb connected to DCDb  */
  652. #define gestaltHidePortA                 3                    /*  Modem port (A) should be hidden from users  */
  653. #define gestaltHidePortB                 4                    /*  Printer port (B) should be hidden from users  */
  654.  
  655. #define gestaltShutdownAttributes         'shut'                /*  ShutDown Manager Attributes  */
  656. #define gestaltShutdownHassdOnBootVolUnmount  0                /*  True if ShutDown Manager unmounts boot & VM volume at shutdown time.  */
  657.  
  658. #define gestaltNuBusConnectors             'sltc'                /*  bitmap of NuBus connectors */
  659. #define gestaltSlotAttr                 'slot'                /*  slot attributes   */
  660. #define gestaltSlotMgrExists             0                    /*  true is slot mgr exists   */
  661. #define gestaltNuBusPresent             1                    /*  NuBus slots are present   */
  662. #define gestaltSESlotPresent             2                    /*  SE PDS slot present   */
  663. #define gestaltSE30SlotPresent             3                    /*  SE/30 slot present   */
  664. #define gestaltPortableSlotPresent         4                    /*  Portable’s slot present   */
  665.  
  666. #define gestaltFirstSlotNumber             'slt1'                /*  returns first physical slot  */
  667. #define gestaltSoundAttr                 'snd '                /*  sound attributes  */
  668. #define gestaltStereoCapability         0                    /*  sound hardware has stereo capability  */
  669. #define gestaltStereoMixing             1                    /*  stereo mixing on external speaker  */
  670. #define gestaltSoundIOMgrPresent         3                    /*  The Sound I/O Manager is present  */
  671. #define gestaltBuiltInSoundInput         4                    /*  built-in Sound Input hardware is present  */
  672. #define gestaltHasSoundInputDevice         5                    /*  Sound Input device available  */
  673. #define gestaltPlayAndRecord             6                    /*  built-in hardware can play and record simultaneously  */
  674. #define gestalt16BitSoundIO             7                    /*  sound hardware can play and record 16-bit samples  */
  675. #define gestaltStereoInput                 8                    /*  sound hardware can record stereo  */
  676. #define gestaltLineLevelInput             9                    /*  sound input port requires line level  */
  677.                                                             /*  the following bits are not defined prior to Sound Mgr 3.0  */
  678. #define gestaltSndPlayDoubleBuffer         10                    /*  SndPlayDoubleBuffer available, set by Sound Mgr 3.0 and later  */
  679. #define gestaltMultiChannels             11                    /*  multiple channel support, set by Sound Mgr 3.0 and later  */
  680. #define gestalt16BitAudioSupport         12                    /*  16 bit audio data supported, set by Sound Mgr 3.0 and later  */
  681.  
  682. #define gestaltSplitOSAttr                 'spos'
  683. #define gestaltSplitOSBootDriveIsNetworkVolume  0            /*  the boot disk is a network 'disk', from the .LANDisk drive.  */
  684. #define gestaltSplitOSAware             1                    /*  the system includes the code to deal with a split os situation.  */
  685. #define gestaltSplitOSEnablerVolumeIsDifferentFromBootVolume  2 /*  the active enabler is on a different volume than the system file.  */
  686. #define gestaltSplitOSMachineNameSetToNetworkNameTemp  3    /*  The machine name was set to the value given us from the BootP server  */
  687.  
  688. #define gestaltSMPSPSendLetterVersion     'spsl'                /*  OCE StandardMail */
  689. #define gestaltSpeechRecognitionAttr     'srta'                /*  speech recognition attributes  */
  690. #define gestaltDesktopSpeechRecognition  1                    /*  recognition thru the desktop microphone is available  */
  691. #define gestaltTelephoneSpeechRecognition  2                /*  recognition thru the telephone is available  */
  692.  
  693. #define gestaltSpeechRecognitionVersion  'srtb'                /*  speech recognition version (0x0150 is the first version that fully supports the API)  */
  694. #define gestaltSoftwareVendorCode         'srad'                /*  Returns system software vendor information  */
  695. #define gestaltSoftwareVendorApple         'Appl'                /*  System software sold by Apple  */
  696. #define gestaltSoftwareVendorLicensee     'Lcns'                /*  System software sold by licensee  */
  697.  
  698. #define gestaltStandardFileAttr         'stdf'                /*  Standard File attributes  */
  699. #define gestaltStandardFile58             0                    /*  True if selectors 5-8 (StandardPutFile-CustomGetFile) are supported  */
  700. #define gestaltStandardFileTranslationAware  1                /*  True if standard file is translation manager aware  */
  701. #define gestaltStandardFileHasColorIcons  2                    /*  True if standard file has 16x16 color icons  */
  702. #define gestaltStandardFileUseGenericIcons  3                /*  Standard file LDEF to use only the system generic icons if true  */
  703. #define gestaltStandardFileHasDynamicVolumeAllocation  4    /*  True if standard file supports more than 20 volumes  */
  704.  
  705. #define gestaltSysArchitecture             'sysa'                /*  Native System Architecture  */
  706. #define gestalt68k                         1                    /*  Motorola MC68k architecture  */
  707. #define gestaltPowerPC                     2                    /*  IBM PowerPC architecture  */
  708.  
  709. #define gestaltSystemUpdateVersion         'sysu'                /*  System Update version  */
  710. #define gestaltSystemVersion             'sysv'                /*  system version */
  711. #define gestaltToolboxTable             'tbtt'                /*   OS trap table base   */
  712. #define gestaltTextEditVersion             'te  '                /*  TextEdit version number  */
  713. #define gestaltTE1                         1                    /*  TextEdit in MacIIci ROM  */
  714. #define gestaltTE2                         2                    /*  TextEdit with 6.0.4 Script Systems on MacIIci (Script bug fixes for MacIIci)  */
  715. #define gestaltTE3                         3                    /*  TextEdit with 6.0.4 Script Systems all but MacIIci  */
  716. #define gestaltTE4                         4                    /*  TextEdit in System 7.0  */
  717. #define gestaltTE5                         5                    /*  TextWidthHook available in TextEdit  */
  718.  
  719. #define gestaltTEAttr                     'teat'                /*  TextEdit attributes  */
  720. #define gestaltTEHasGetHiliteRgn         0                    /*  TextEdit has TEGetHiliteRgn  */
  721. #define gestaltTESupportsInlineInput     1                    /*  TextEdit does Inline Input  */
  722. #define gestaltTESupportsTextObjects     2                    /*  TextEdit does Text Objects  */
  723. #define gestaltTEHasWhiteBackground     3                    /*  TextEdit supports overriding the TERec's background to white  */
  724.  
  725. #define gestaltTeleMgrAttr                 'tele'                /*  Telephone manager attributes  */
  726. #define gestaltTeleMgrPresent             0
  727. #define gestaltTeleMgrPowerPCSupport     1
  728. #define gestaltTeleMgrSoundStreams         2
  729. #define gestaltTeleMgrAutoAnswer         3
  730. #define gestaltTeleMgrIndHandset         4
  731. #define gestaltTeleMgrSilenceDetect     5
  732. #define gestaltTeleMgrNewTELNewSupport     6
  733.  
  734. #define gestaltTermMgrAttr                 'term'                /*  terminal mgr attributes  */
  735. #define gestaltTermMgrPresent             0
  736. #define gestaltTermMgrErrorString         2
  737.  
  738. #define gestaltThreadMgrAttr             'thds'                /*  Thread Manager attributes  */
  739. #define gestaltThreadMgrPresent         0                    /*  bit true if Thread Mgr is present  */
  740. #define gestaltSpecificMatchSupport     1                    /*  bit true if Thread Mgr supports exact match creation option  */
  741. #define gestaltThreadsLibraryPresent     2                    /*  bit true if Thread Mgr shared library is present  */
  742.  
  743. #define gestaltTimeMgrVersion             'tmgr'                /*  time mgr version  */
  744. #define gestaltStandardTimeMgr             1                    /*  standard time mgr is present  */
  745. #define gestaltRevisedTimeMgr             2                    /*  revised time mgr is present  */
  746. #define gestaltExtendedTimeMgr             3                    /*  extended time mgr is present  */
  747.  
  748. #define gestaltTSMTEVersion             'tmTV'
  749. #define gestaltTSMTE1                     0x0100                /*  Original version of TSMTE  */
  750. #define gestaltTSMTE15                     0x0150                /*  System 8.0  */
  751. #define gestaltTSMTE152                 0x0152                /*  System 8.2  */
  752.  
  753. #define gestaltTSMTEAttr                 'tmTE'
  754. #define gestaltTSMTEPresent             0
  755. #define gestaltTSMTE                     0                    /*  gestaltTSMTE is old name for gestaltTSMTEPresent  */
  756.  
  757. #define gestaltALMAttr                     'trip'                /*  Settings Manager attributes (see also gestaltALMVers)  */
  758. #define gestaltALMPresent                 0                    /*  bit true if ALM is available  */
  759. #define gestaltALMHasSFGroup             1                    /*  bit true if Put/Get/Merge Group calls are implmented  */
  760. #define gestaltALMHasCFMSupport         2                    /*  bit true if CFM-based modules are supported  */
  761. #define gestaltALMHasRescanNotifiers     3                    /*  bit true if Rescan notifications/events will be sent to clients  */
  762.  
  763. #define gestaltALMHasSFLocation         1
  764. #define gestaltTSMgrVersion             'tsmv'                /*  Text Services Mgr version, if present  */
  765. #define gestaltTSMgr15                     0x0150
  766.  
  767. #define gestaltTSMgrAttr                 'tsma'                /*  Text Services Mgr attributes, if present  */
  768. #define gestaltTSMDisplayMgrAwareBit     0                    /*  TSM knows about display manager  */
  769. #define gestaltTSMdoesTSMTEBit             1                    /*  TSM has integrated TSMTE  */
  770.  
  771. #define gestaltSpeechAttr                 'ttsc'                /*  Speech Manager attributes  */
  772. #define gestaltSpeechMgrPresent         0                    /*  bit set indicates that Speech Manager exists  */
  773. #define gestaltSpeechHasPPCGlue         1                    /*  bit set indicates that native PPC glue for Speech Manager API exists  */
  774.  
  775. #define gestaltTVAttr                     'tv  '                /*  TV version  */
  776. #define gestaltHasTVTuner                 0                    /*  supports Philips FL1236F video tuner  */
  777. #define gestaltHasSoundFader             1                    /*  supports Philips TEA6330 Sound Fader chip  */
  778. #define gestaltHasHWClosedCaptioning     2                    /*  supports Philips SAA5252 Closed Captioning  */
  779. #define gestaltHasIRRemote                 3                    /*  supports CyclopsII Infra Red Remote control  */
  780. #define gestaltHasVidDecoderScaler         4                    /*  supports Philips SAA7194 Video Decoder/Scaler  */
  781. #define gestaltHasStereoDecoder         5                    /*  supports Sony SBX1637A-01 stereo decoder  */
  782. #define gestaltHasSerialFader             6                    /*  has fader audio in serial with system audio  */
  783. #define gestaltHasFMTuner                 7                    /*  has FM Tuner from donnybrook card  */
  784. #define gestaltHasSystemIRFunction         8                    /*  Infra Red button function is set up by system and not by Video Startup  */
  785. #define gestaltIRDisabled                 9                    /*  Infra Red remote is not disabled.  */
  786. #define gestaltINeedIRPowerOffConfirm     10                    /*  Need IR power off confirm dialog.  */
  787. #define gestaltHasZoomedVideo             11                    /*  Has Zoomed Video PC Card video input.  */
  788.  
  789. #define gestaltUSBAttr                     'usb '                /*  USB Attributes  */
  790. #define gestaltUSBPresent                 0                    /*  USB Support available  */
  791. #define gestaltUSBHasIsoch                 1                    /*  USB Isochronous features available  */
  792.  
  793. #define gestaltUSBVersion                 'usbv'                /*  USB version  */
  794. #define gestaltVersion                     'vers'                /*  gestalt version  */
  795. #define gestaltValueImplementedVers     5                    /*  version of gestalt where gestaltValue is implemented.  */
  796.  
  797. #define gestaltVIA1Addr                 'via1'                /*  via 1 base address   */
  798. #define gestaltVIA2Addr                 'via2'                /*  via 2 base address   */
  799. #define gestaltVMAttr                     'vm  '                /*  virtual memory attributes  */
  800. #define gestaltVMPresent                 0                    /*  true if virtual memory is present  */
  801. #define gestaltVMHasLockMemoryForOutput  1                    /*  true if LockMemoryForOutput is available  */
  802. #define gestaltVMFilemappingOn             3                    /*  true if filemapping is available  */
  803. #define gestaltVMHasPagingControl         4                    /*  true if MakeMemoryResident, MakeMemoryNonResident, FlushMemory, and ReleaseMemoryData are available  */
  804.  
  805. #define gestaltVMInfoType                 'vmin'                /*  Indicates how the Finder should display information about VM in  */
  806.                                                             /*  the Finder about box.  */
  807. #define gestaltVMInfoSizeStorageType     0                    /*  Display VM on/off, backing store size and name  */
  808. #define gestaltVMInfoSizeType             1                    /*  Display whether VM is on or off and the size of the backing store  */
  809. #define gestaltVMInfoSimpleType         2                    /*  Display whether VM is on or off  */
  810. #define gestaltVMInfoNoneType             3                    /*  Display no VM information  */
  811.  
  812. #define gestaltVMBackingStoreFileRefNum  'vmbs'                /*  file refNum of virtual memory's main backing store file (returned in low word of result)  */
  813. #define gestaltALMVers                     'walk'                /*  Settings Manager version (see also gestaltALMAttr)  */
  814. #define gestaltTranslationAttr             'xlat'                /*  Translation Manager attributes  */
  815. #define gestaltTranslationMgrExists     0                    /*  True if translation manager exists  */
  816. #define gestaltTranslationMgrHintOrder     1                    /*  True if hint order reversal in effect  */
  817. #define gestaltTranslationPPCAvail         2
  818. #define gestaltTranslationGetPathAPIAvail  3
  819.  
  820. #define gestaltExtToolboxTable             'xttt'                /*  Extended Toolbox trap table base  */
  821. #define gestaltWorldScriptIIVersion     'doub'
  822. #define gestaltWorldScriptIIAttr         'wsat'
  823. #define gestaltWSIICanPrintWithoutPrGeneralBit  0            /*  bit 0 is on if WS II knows about PrinterStatus callback  */
  824.  
  825.  
  826. #endif /* __GESTALT_R__ */
  827.  
  828.